Skip to content

登录 - Login

函数简介

用户登录授权系统,验证用户身份并注册插件功能。本接口登录成功会自动注册插件,不需要调用 Reg 接口重复注册,也不需要提前注册避免无效扣费。

返回数据格式:

json
{
  "EndTime": "2026-01-30 11:40:41.193",
  "LastVersion": "",
  "LicenseType": 3,
  "LicenseTypeStr": "月卡",
  "Message": "",
  "RemainingCount": 0,
  "ServerTime": "2025-12-30 11:40:41.714",
  "Status": 1,
}
字段名说明
EndTime授权到期时间。
LastVersion最新的版本号。
LicenseType授权类型:0次卡,1小时卡,2日卡,3月卡,4年卡,5永久卡。
LicenseTypeStr授权类型中文描述。
Message提示信息;失败时多为 错误码:中文描述(如 "2001:未激活"),也可直接展示给用户。完整对照见 客户端错误码说明
RemainingCount次卡剩余数量。
ServerTime服务器时间。
Status授权状态:1正常,0失败。

常见错误码(Message 字段)

格式:{错误码}:{中文描述}

Message含义
2001:未激活未激活,需先 Activate / Trial
2002:用户码无效用户码无效
2003:参数无效参数无效
2004:用户不存在用户不存在
2005:软件不可用或未开通软件不可用或未开通
2006:访问被拒绝访问被拒绝(黑白名单)
2007:账号权限不足账号权限不足
2008:授权无效授权无效
2009:余额不足余额不足
2010:插件验证失败插件验证过程异常
2011:次卡功能已隐藏次卡功能已隐藏
2012:特性不被允许插件特性不在软件白名单
2018:权限不合法,请检查FeatureList参数FeatureList 不合法
2099:未知错误未知错误

接口名称

Login

DLL调用

long Login(string userCode, string softCode, string featureList, string softVersion, string dealerCode);

参数说明

参数名类型说明
userCode字符串用户码。
softCode字符串软件码。
featureList字符串功能列表。为空时只使用授权系统,不注册插件。如OLA、YOLO等,多个特性用 | 分割,如使用YOLO功能 OLA|YOLO
softVersion字符串软件版本。用于区分软件版本信息,未来可用于版本控制,可传空串
dealerCode字符串经销商码。用于区分经销商信息,可传空串

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功
csharp
using OLAPlug;

var ola = new OLAPlugServer();
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
json_result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
# Python SDK 返回 JSON 字符串,需自行解析
java
import com.olaplug.OLAPlugServer;
import com.olaplug.model.OlaAuthLoginReturn;

OLAPlugServer ola = new OLAPlugServer();
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功
go
import "github.com/ola/olaplug/olaplug"

ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
result := ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
// result.Status == 1 表示登录成功
rust
use olaplug::OLAPlugServer;

let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let result = ola.login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.status == 1 表示登录成功
cpp
var ola = com("OlaPlug.OlaSoft")
var result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
Set result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
text
.局部变量 ola, OLAPlug
.局部变量 result, OlaAuthLoginReturn
ola.创建 ()
result = ola.Login(“userCode”, “softCode”, “OLA|YOLO”, “1.0.0”, “dealerCode”)
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var json = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// Aardio SDK 返回 JSON 字符串,需自行解析
text
变量 ola <类型 = OLAPlugServer>
变量 result <类型 = OlaAuthLoginReturn>
ola = 新建 OLAPlugServer
result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功

原生 DLL 调用

cpp
long resultPtr = Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
if (resultPtr != 0) {
    char result[512] = {0};
    GetStringFromPtr(resultPtr, result, sizeof(result));
    FreeStringPtr(resultPtr);
    // result 为 JSON,如 {"Status":1,"EndTime":"..."}
}
csharp
using System.Runtime.InteropServices;
using System.Text;

[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long Login(string userCode, string softCode, string featureList, string softVersion, string dealerCode);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int GetStringFromPtr(long ptr, StringBuilder lpString, int size);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int FreeStringPtr(long ptr);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int GetStringSize(long ptr);

long resultPtr = Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
if (resultPtr != 0) {
    StringBuilder result = new StringBuilder(GetStringSize(resultPtr) + 1);
    GetStringFromPtr(resultPtr, result, result.Capacity);
    FreeStringPtr(resultPtr);
    string resultStr = result.ToString();
}
python
from ctypes import CDLL, c_int64, create_string_buffer

ola = CDLL("OLAPlug_x64.dll")
ola.Login.restype = c_int64
resultPtr = ola.Login(
    b"userCode", b"softCode", b"OLA|YOLO", b"1.0.0", b"dealerCode"
)
if resultPtr:
    buf = create_string_buffer(1024)
    ola.GetStringFromPtr(resultPtr, buf, 1024)
    ola.FreeStringPtr(resultPtr)
    result = buf.value.decode("utf-8")

返回值

调用方式返回值说明
SDKOlaAuthLoginReturn结构化返回对象;Status == 1 表示登录成功
原生 DLL非 0成功,返回 JSON 字符串格式的结果。
原生 DLL0失败。

注意事项

项目说明
释放内存返回的字符串指针需要调用 FreeStringPtr 接口释放内存。
如果 featureList 参数为空如果 featureList 参数为空,则只使用授权系统功能,不会注册相关插件功能。
用户码、软件码和经销商码需要从授权平台获取用户码、软件码和经销商码需要从授权平台获取。
错误码Status == 0 时根据 Message 分支处理;完整码表见 客户端错误码说明